<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>QSculpt: GlCanvas Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">QSculpt
   &#160;<span id="projectnumber">0.0.1a</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-slots">Public Slots</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">GlCanvas Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="GlCanvas" -->
<p><code>#include &lt;<a class="el" href="_gl_view_8h_source.html">GlView.h</a>&gt;</code></p>

<p><a href="class_gl_canvas-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_gl_canvas_1_1_impl.html">Impl</a></td></tr>
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>PerspectiveType</b> { <br/>
&#160;&#160;<b>Front</b> =  0, 
<b>Back</b>, 
<b>Top</b>, 
<b>Bottom</b>, 
<br/>
&#160;&#160;<b>Left</b>, 
<b>Right</b>, 
<b>Perspective</b>
<br/>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>CursorShapeType</b> { <b>None</b>, 
<b>Cross</b>, 
<b>Circle</b>, 
<b>Image</b>
 }</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0836bf705cb11f412811364c1c1e27d"></a><!-- doxytag: member="GlCanvas::CameraContainer" ref="ab0836bf705cb11f412811364c1c1e27d" args="" -->
typedef QMap&lt; int, <a class="el" href="class_camera.html">Camera</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>CameraContainer</b></td></tr>
<tr><td colspan="2"><h2><a name="pub-slots"></a>
Public Slots</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a1cb1098025dd2e1956d34dbaaa6e383e">setDrawingMode</a> (DrawingMode mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a6c643daf33a7f5eb6089325c1be76120">setPerspectiveView</a> (PerspectiveType type)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aa7ce7d955363793ca9479eebbc47925b">setGridVisible</a> (bool value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fcea0c9e24580e9514568481b4b9a8f"></a><!-- doxytag: member="GlCanvas::setNormalsVisible" ref="a6fcea0c9e24580e9514568481b4b9a8f" args="(bool value)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setNormalsVisible</b> (bool value)</td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aa4bd4c73b8c9e1c4bf6f6b0f442709b1">GlCanvas</a> (<a class="el" href="class_document_view.html">DocumentView</a> *parent=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ad288bbe46bd46d6a2462d04e059e9a1a">GlCanvas</a> (QGLContext *ctx, <a class="el" href="class_document_view.html">DocumentView</a> *parent=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ace13c982e13f1912c59ffcf605ac80b9">~GlCanvas</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aaf0c5632e3ea27443f4d14f94c06b80e">isGridVisible</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a88431e1d6951b9e208d5f2d8c2f72fa0"></a><!-- doxytag: member="GlCanvas::areNormalsVisible" ref="a88431e1d6951b9e208d5f2d8c2f72fa0" args="()" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>areNormalsVisible</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ObjectContainer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aeacf302d152193915a01dd7578db8614">getSelectedObjects</a> (GLint x, GLint y)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">PointIndexList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a3953e86ba36c8c17dcfcab7da6098cbe">getSelectedVertices</a> (GLint x, GLint y, GLint width, GLint height)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_camera.html">Camera</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a5b2904679543d846f6a038d68415d3c3">getViewCamera</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_camera.html">Camera</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a031609e92b948a35bdf250b224e4f2bd">getViewCamera</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a1eb995a8edc5a0ea9abcf0553c1a4dbb">screenToWorld</a> (double x, double y, double z, double *wx, double *wy, double *wz) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a8190b8af5d303755084315eba69d2583">screenToWorld</a> (const Point3 &amp;, Point3 &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Point3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a9e5b909f392c8dc130d10f9708291e7c">screenToWorld</a> (const Point3 &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a0a1ed87fd1fb141d2ed3bd2e17159bf2">worldToScreen</a> (double wx, double wy, double wz, double *x, double *y, double *z) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a34841194936da54e2fa0d0b3acdfe09f">worldToScreen</a> (const Point3 &amp;, Point3 &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Point3&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ac4b0cd5f34a437d5a07164aaf36976fa">worldToScreen</a> (const Point3 &amp;) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63856d1843103505e476ce4624728c33"></a><!-- doxytag: member="GlCanvas::getPerspectiveView" ref="a63856d1843103505e476ce4624728c33" args="()" -->
PerspectiveType&#160;</td><td class="memItemRight" valign="bottom"><b>getPerspectiveView</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5cfb010f80a9045982f00935b87838a5"></a><!-- doxytag: member="GlCanvas::set3DCursorShape" ref="a5cfb010f80a9045982f00935b87838a5" args="(CursorShapeType shape)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>set3DCursorShape</b> (CursorShapeType shape)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c9d99e7848cb00cbd49386a94c650e5"></a><!-- doxytag: member="GlCanvas::getCursorShape" ref="a3c9d99e7848cb00cbd49386a94c650e5" args="()" -->
CursorShapeType&#160;</td><td class="memItemRight" valign="bottom"><b>getCursorShape</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02345d8116c068d349a605f86e54f186"></a><!-- doxytag: member="GlCanvas::setCursorPosition" ref="a02345d8116c068d349a605f86e54f186" args="(Point3 p)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setCursorPosition</b> (Point3 p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06b9faac8f00a78e87d030932f41a4dc"></a><!-- doxytag: member="GlCanvas::getCursorPosition" ref="a06b9faac8f00a78e87d030932f41a4dc" args="()" -->
Point3&#160;</td><td class="memItemRight" valign="bottom"><b>getCursorPosition</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe3aa6de5d01474af49defb8ec85d9ae"></a><!-- doxytag: member="GlCanvas::setCursorOrientation" ref="afe3aa6de5d01474af49defb8ec85d9ae" args="(Point3 n)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>setCursorOrientation</b> (Point3 n)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5d9af45f0a26fad8c186f242e69b22ba"></a><!-- doxytag: member="GlCanvas::getCursorOrientation" ref="a5d9af45f0a26fad8c186f242e69b22ba" args="()" -->
Point3&#160;</td><td class="memItemRight" valign="bottom"><b>getCursorOrientation</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aa70231abe2ffd5825c513bf64402a020">setCursorImage</a> (const QImage &amp;image)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">QImage&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#aff275a38d8b886b0ebf55c71fada0010">getCursorImage</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e7a7c96995f8eb2620fc05799155f8e"></a><!-- doxytag: member="GlCanvas::enable" ref="a3e7a7c96995f8eb2620fc05799155f8e" args="(GLenum flag)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>enable</b> (GLenum flag)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c2f764fc527c5461bb6ec1ac557fcd9"></a><!-- doxytag: member="GlCanvas::disable" ref="a4c2f764fc527c5461bb6ec1ac557fcd9" args="(GLenum flag)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>disable</b> (GLenum flag)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a7bd966336da4b1137561e64542701d21">setPen</a> (const QPen &amp;pen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const QPen &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ab978ba27fda3f4b24ddad2849832ed82">pen</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a1d318a3ce65b11b217b1e939125d9c36">setBrush</a> (const QBrush &amp;pen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const QBrush &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a60040e3423720268957576f0d1db91fa">brush</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_color.html">Color</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#afbf0e934dfb5fb6c46ae926dc1d0b5b4">color</a> (const Point3 &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_color.html">Color</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ac0fed734f82381e6f32efa9301a2b5ea">color</a> (int x, int y)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ae2c9bbcf9ede0a15e5fc72d3851330d5">colorUint</a> (const Point3 &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#af66f1f100ae275ffa8ac36ae94d11cd7">colorUint</a> (int x, int y)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ad49de4a5a155edb6bc466ea56f9f718a">depth</a> (const Point3 &amp;p)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a59d594b006b76f752bb8c9c9292afbc6">depth</a> (int x, int y)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2dc516230d01cf62e13b4426b9e49649"></a><!-- doxytag: member="GlCanvas::drawLine" ref="a2dc516230d01cf62e13b4426b9e49649" args="(const Point3 &amp;p1, const Point3 &amp;p2)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>drawLine</b> (const Point3 &amp;p1, const Point3 &amp;p2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ab76a62e34dcb54ca0ab090eee18dbbd5">drawLine2D</a> (const Point3 &amp;p1, const Point3 &amp;p2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a532f54d1a7e02d9642fcf37f4c781f17">drawRect</a> (const Point3 &amp;p1, const Point3 &amp;p2, int mode=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#adf8ae901917ae6a9a18e5f8ac5fc3b7b">drawEllipse</a> (const Point3 &amp;center, float axis1, float axis2, float innerAxis1=0.0f, float innerAxis2=0.0f)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#ae6745112f40ae41b34dab0bb36f60a76">drawArc</a> (const Point3 &amp;center, float startAngle, float endAngle, float axis1, float axis2, float innerAxis1=0.0f, float innerAxis2=0.0f)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_i_renderer.html">IRenderer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a5277f562acd39c9009aee04dfb8da14f">renderer</a> () const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#af8efbece7288e106ff31540ec5c7f73e">drawScene</a> (Scene::SharedPtr scene)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gl_canvas.html#a6eb807809dc28ba9d279119e46b40173">begin</a> (GLenum mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa10ddc18958aeef1dc4fbd6a0942245a"></a><!-- doxytag: member="GlCanvas::end" ref="aa10ddc18958aeef1dc4fbd6a0942245a" args="()" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>end</b> ()</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4525bf51c063e6760349fc526552742"></a><!-- doxytag: member="GlCanvas::initializeGL" ref="ad4525bf51c063e6760349fc526552742" args="()" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>initializeGL</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea2a3da92cce76629545a49c6263a2a1"></a><!-- doxytag: member="GlCanvas::resizeGL" ref="aea2a3da92cce76629545a49c6263a2a1" args="(int w, int h)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>resizeGL</b> (int w, int h)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bcc2d8fe8eae5740498ef73238fe44c"></a><!-- doxytag: member="GlCanvas::paintGL" ref="a7bcc2d8fe8eae5740498ef73238fe44c" args="()" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>paintGL</b> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac37d5717361e4d68ae2dc716c558f96b"></a><!-- doxytag: member="GlCanvas::mouseMoveEvent" ref="ac37d5717361e4d68ae2dc716c558f96b" args="(QMouseEvent *e)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>mouseMoveEvent</b> (QMouseEvent *e)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5422ef718d58c9359228ebe7f225bbca"></a><!-- doxytag: member="GlCanvas::mousePressEvent" ref="a5422ef718d58c9359228ebe7f225bbca" args="(QMouseEvent *e)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>mousePressEvent</b> (QMouseEvent *e)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecd59be7055db45a07c901a5eeb49e80"></a><!-- doxytag: member="GlCanvas::mouseReleaseEvent" ref="aecd59be7055db45a07c901a5eeb49e80" args="(QMouseEvent *e)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>mouseReleaseEvent</b> (QMouseEvent *e)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadcfb33ca2aa165e14421d10422d8e16"></a><!-- doxytag: member="GlCanvas::wheelEvent" ref="aadcfb33ca2aa165e14421d10422d8e16" args="(QWheelEvent *e)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>wheelEvent</b> (QWheelEvent *e)</td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec337cc00223790e03f15be711a7b185"></a><!-- doxytag: member="GlCanvas::_mousePressed" ref="aec337cc00223790e03f15be711a7b185" args="" -->
bool&#160;</td><td class="memItemRight" valign="bottom"><b>_mousePressed</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae2e1ef26aea4a55bc22f1609e75ad323"></a><!-- doxytag: member="GlCanvas::_mousePosition" ref="ae2e1ef26aea4a55bc22f1609e75ad323" args="" -->
QPoint&#160;</td><td class="memItemRight" valign="bottom"><b>_mousePosition</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Widget to display OpenGL graphics. Setup the device context, handle resize events, mouse events, etc.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Juan Roberto Cabral Flores &lt;<a href="mailto:roberto.cabral@gmail.com">roberto.cabral@gmail.com</a>&gt; </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa4bd4c73b8c9e1c4bf6f6b0f442709b1"></a><!-- doxytag: member="GlCanvas::GlCanvas" ref="aa4bd4c73b8c9e1c4bf6f6b0f442709b1" args="(DocumentView *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GlCanvas::GlCanvas </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_document_view.html">DocumentView</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Widget constructor. Initializes default parameters. This widget only can have a <a class="el" href="class_document_view.html">DocumentView</a> class-derived as parent.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>the parent view of the widget. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad288bbe46bd46d6a2462d04e059e9a1a"></a><!-- doxytag: member="GlCanvas::GlCanvas" ref="ad288bbe46bd46d6a2462d04e059e9a1a" args="(QGLContext *ctx, DocumentView *parent=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GlCanvas::GlCanvas </td>
          <td>(</td>
          <td class="paramtype">QGLContext *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_document_view.html">DocumentView</a> *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Widget constructor. Initializes default parameters. This widget only can have a <a class="el" href="class_document_view.html">DocumentView</a> class-derived as parent.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>the parent view of the widget. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ace13c982e13f1912c59ffcf605ac80b9"></a><!-- doxytag: member="GlCanvas::~GlCanvas" ref="ace13c982e13f1912c59ffcf605ac80b9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GlCanvas::~GlCanvas </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Default destructor </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6eb807809dc28ba9d279119e46b40173"></a><!-- doxytag: member="GlCanvas::begin" ref="a6eb807809dc28ba9d279119e46b40173" args="(GLenum mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::begin </td>
          <td>(</td>
          <td class="paramtype">GLenum&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Used to submit data to hw. Similar to glBegin()</p>
<p>Used to emulate glBegin()/ glEnd() from OpenGL. It will use temporary buffer to send data to GPU. </p>

</div>
</div>
<a class="anchor" id="a60040e3423720268957576f0d1db91fa"></a><!-- doxytag: member="GlCanvas::brush" ref="a60040e3423720268957576f0d1db91fa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const QBrush &amp; GlCanvas::brush </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function return the QBrush used to draw. </p>

</div>
</div>
<a class="anchor" id="afbf0e934dfb5fb6c46ae926dc1d0b5b4"></a><!-- doxytag: member="GlCanvas::color" ref="afbf0e934dfb5fb6c46ae926dc1d0b5b4" args="(const Point3 &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_color.html">Color</a> GlCanvas::color </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the color under pixel at coordinate p. This function ignores Z component. </p>

</div>
</div>
<a class="anchor" id="ac0fed734f82381e6f32efa9301a2b5ea"></a><!-- doxytag: member="GlCanvas::color" ref="ac0fed734f82381e6f32efa9301a2b5ea" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_color.html">Color</a> GlCanvas::color </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the color under pixel at screen coordinate (x,y). </p>

</div>
</div>
<a class="anchor" id="ae2c9bbcf9ede0a15e5fc72d3851330d5"></a><!-- doxytag: member="GlCanvas::colorUint" ref="ae2c9bbcf9ede0a15e5fc72d3851330d5" args="(const Point3 &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint GlCanvas::colorUint </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the color under pixel at coordinate p. This function ignores Z component. </p>

</div>
</div>
<a class="anchor" id="af66f1f100ae275ffa8ac36ae94d11cd7"></a><!-- doxytag: member="GlCanvas::colorUint" ref="af66f1f100ae275ffa8ac36ae94d11cd7" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint GlCanvas::colorUint </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the color under pixel at screen coordinate (x,y). </p>

</div>
</div>
<a class="anchor" id="ad49de4a5a155edb6bc466ea56f9f718a"></a><!-- doxytag: member="GlCanvas::depth" ref="ad49de4a5a155edb6bc466ea56f9f718a" args="(const Point3 &amp;p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float GlCanvas::depth </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the depth component at p in screen coordinates. This function ignores Z component. </p>

</div>
</div>
<a class="anchor" id="a59d594b006b76f752bb8c9c9292afbc6"></a><!-- doxytag: member="GlCanvas::depth" ref="a59d594b006b76f752bb8c9c9292afbc6" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float GlCanvas::depth </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the depth component at screen coordinates (x,y). </p>

</div>
</div>
<a class="anchor" id="ae6745112f40ae41b34dab0bb36f60a76"></a><!-- doxytag: member="GlCanvas::drawArc" ref="ae6745112f40ae41b34dab0bb36f60a76" args="(const Point3 &amp;center, float startAngle, float endAngle, float axis1, float axis2, float innerAxis1=0.0f, float innerAxis2=0.0f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::drawArc </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>startAngle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>endAngle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>axis1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>axis2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>innerAxis1</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>innerAxis2</em> = <code>0.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Draw an arc, a part of an ellipse with an optional hole in it. The ellipse is defined by the major axis and the minor axis. The arc is defined by the start and end angles.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">center</td><td>center of the arc </td></tr>
    <tr><td class="paramname">starAngle</td><td>start angle of the arc in degrees. </td></tr>
    <tr><td class="paramname">endAngle</td><td>end angle of the arc in degrees. </td></tr>
    <tr><td class="paramname">axis1</td><td>Length of the long axis in pixels. </td></tr>
    <tr><td class="paramname">axis2</td><td>Length of the minor axis in pixels. </td></tr>
    <tr><td class="paramname">innerAxis1</td><td>Length of the long axis of the inner ellipse. Pass 0 if not inner ellipse is desired. </td></tr>
    <tr><td class="paramname">innerAxis2</td><td>Length of the minor axis of the inner ellipse. Pass 0 if not inner ellipse is desired. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adf8ae901917ae6a9a18e5f8ac5fc3b7b"></a><!-- doxytag: member="GlCanvas::drawEllipse" ref="adf8ae901917ae6a9a18e5f8ac5fc3b7b" args="(const Point3 &amp;center, float axis1, float axis2, float innerAxis1=0.0f, float innerAxis2=0.0f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::drawEllipse </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>center</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>axis1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>axis2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>innerAxis1</em> = <code>0.0f</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>innerAxis2</em> = <code>0.0f</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Draw an ellipse with an optional hole in it. The ellipse is defined by the major axis and the minor axis.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">axis1</td><td>Length of the long axis in pixels. </td></tr>
    <tr><td class="paramname">axis2</td><td>Length of the minor axis in pixels. </td></tr>
    <tr><td class="paramname">innerAxis1</td><td>Length of the long axis of the inner ellipse. Pass 0 if not inner ellipse is desired. </td></tr>
    <tr><td class="paramname">innerAxis2</td><td>Length of the minor axis of the inner ellipse. Pass 0 if not inner ellipse is desired. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab76a62e34dcb54ca0ab090eee18dbbd5"></a><!-- doxytag: member="GlCanvas::drawLine2D" ref="ab76a62e34dcb54ca0ab090eee18dbbd5" args="(const Point3 &amp;p1, const Point3 &amp;p2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::drawLine2D </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Draw a line in screen coordinates </p>

</div>
</div>
<a class="anchor" id="a532f54d1a7e02d9642fcf37f4c781f17"></a><!-- doxytag: member="GlCanvas::drawRect" ref="a532f54d1a7e02d9642fcf37f4c781f17" args="(const Point3 &amp;p1, const Point3 &amp;p2, int mode=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::drawRect </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mode</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Draw a rectangle into the canvas. The z coordinatinate is assumed to be equal between both points. </p>

</div>
</div>
<a class="anchor" id="af8efbece7288e106ff31540ec5c7f73e"></a><!-- doxytag: member="GlCanvas::drawScene" ref="af8efbece7288e106ff31540ec5c7f73e" args="(Scene::SharedPtr scene)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::drawScene </td>
          <td>(</td>
          <td class="paramtype">Scene::SharedPtr&#160;</td>
          <td class="paramname"><em>scene</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Used to draw a scene hierarchy using the current renderer </p>

</div>
</div>
<a class="anchor" id="aff275a38d8b886b0ebf55c71fada0010"></a><!-- doxytag: member="GlCanvas::getCursorImage" ref="aff275a38d8b886b0ebf55c71fada0010" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QImage GlCanvas::getCursorImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns a copy of the image used as cursor. </p>

</div>
</div>
<a class="anchor" id="aeacf302d152193915a01dd7578db8614"></a><!-- doxytag: member="GlCanvas::getSelectedObjects" ref="aeacf302d152193915a01dd7578db8614" args="(GLint x, GLint y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ObjectContainer GlCanvas::getSelectedObjects </td>
          <td>(</td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Get a list of objects drawn under the position (x, y).</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>coord's x component </td></tr>
    <tr><td class="paramname">y</td><td>coord's y component</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="struct_hit_record.html">HitRecord</a> vector </dd></dl>

</div>
</div>
<a class="anchor" id="a3953e86ba36c8c17dcfcab7da6098cbe"></a><!-- doxytag: member="GlCanvas::getSelectedVertices" ref="a3953e86ba36c8c17dcfcab7da6098cbe" args="(GLint x, GLint y, GLint width, GLint height)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">PointIndexList GlCanvas::getSelectedVertices </td>
          <td>(</td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLint&#160;</td>
          <td class="paramname"><em>height</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method returns the vertices contained inside the specified 2D box in screen coordinates. </p>

</div>
</div>
<a class="anchor" id="a5b2904679543d846f6a038d68415d3c3"></a><!-- doxytag: member="GlCanvas::getViewCamera" ref="a5b2904679543d846f6a038d68415d3c3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_camera.html">Camera</a> * GlCanvas::getViewCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the current active camera in the canvas. </p>

</div>
</div>
<a class="anchor" id="a031609e92b948a35bdf250b224e4f2bd"></a><!-- doxytag: member="GlCanvas::getViewCamera" ref="a031609e92b948a35bdf250b224e4f2bd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_camera.html">Camera</a> * GlCanvas::getViewCamera </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the current active camera in the canvas. </p>

</div>
</div>
<a class="anchor" id="aaf0c5632e3ea27443f4d14f94c06b80e"></a><!-- doxytag: member="GlCanvas::isGridVisible" ref="aaf0c5632e3ea27443f4d14f94c06b80e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GlCanvas::isGridVisible </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Return the state of the visibility of the grid.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if grid is visible. False otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="ab978ba27fda3f4b24ddad2849832ed82"></a><!-- doxytag: member="GlCanvas::pen" ref="ab978ba27fda3f4b24ddad2849832ed82" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const QPen &amp; GlCanvas::pen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function return the QPen used to draw. </p>

</div>
</div>
<a class="anchor" id="a5277f562acd39c9009aee04dfb8da14f"></a><!-- doxytag: member="GlCanvas::renderer" ref="a5277f562acd39c9009aee04dfb8da14f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_i_renderer.html">IRenderer</a> * GlCanvas::renderer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This method gets the current renderer used to render surfaces. </p>

</div>
</div>
<a class="anchor" id="a1eb995a8edc5a0ea9abcf0553c1a4dbb"></a><!-- doxytag: member="GlCanvas::screenToWorld" ref="a1eb995a8edc5a0ea9abcf0553c1a4dbb" args="(double x, double y, double z, double *wx, double *wy, double *wz) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::screenToWorld </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>wx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>wy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>wz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in screen coordinate system to world coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<a class="anchor" id="a8190b8af5d303755084315eba69d2583"></a><!-- doxytag: member="GlCanvas::screenToWorld" ref="a8190b8af5d303755084315eba69d2583" args="(const Point3 &amp;, Point3 &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::screenToWorld </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>winCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Point3 &amp;&#160;</td>
          <td class="paramname"><em>world</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in screen coordinate system to world coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<a class="anchor" id="a9e5b909f392c8dc130d10f9708291e7c"></a><!-- doxytag: member="GlCanvas::screenToWorld" ref="a9e5b909f392c8dc130d10f9708291e7c" args="(const Point3 &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Point3 GlCanvas::screenToWorld </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in screen coordinate system to world coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<a class="anchor" id="a1d318a3ce65b11b217b1e939125d9c36"></a><!-- doxytag: member="GlCanvas::setBrush" ref="a1d318a3ce65b11b217b1e939125d9c36" args="(const QBrush &amp;pen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setBrush </td>
          <td>(</td>
          <td class="paramtype">const QBrush &amp;&#160;</td>
          <td class="paramname"><em>pen</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function sets the QBrush to use to draw different primitves.</p>
<p>Following drawing command will use the color, width and more properties of provided QBrush to draw. </p>

</div>
</div>
<a class="anchor" id="aa70231abe2ffd5825c513bf64402a020"></a><!-- doxytag: member="GlCanvas::setCursorImage" ref="aa70231abe2ffd5825c513bf64402a020" args="(const QImage &amp;image)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setCursorImage </td>
          <td>(</td>
          <td class="paramtype">const QImage &amp;&#160;</td>
          <td class="paramname"><em>image</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Sets the image to show as the cursor. The image is copied to a new image. </p>

</div>
</div>
<a class="anchor" id="a1cb1098025dd2e1956d34dbaaa6e383e"></a><!-- doxytag: member="GlCanvas::setDrawingMode" ref="a1cb1098025dd2e1956d34dbaaa6e383e" args="(DrawingMode mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setDrawingMode </td>
          <td>(</td>
          <td class="paramtype">DrawingMode&#160;</td>
          <td class="paramname"><em>mode</em></td><td>)</td>
          <td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the drawing mode of the display.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">mode</td><td>New drawing mode to display. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa7ce7d955363793ca9479eebbc47925b"></a><!-- doxytag: member="GlCanvas::setGridVisible" ref="aa7ce7d955363793ca9479eebbc47925b" args="(bool value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setGridVisible </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Turn the visibility of the grid on/off.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">value</td><td>true to turn on the grid. False to turn off. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7bd966336da4b1137561e64542701d21"></a><!-- doxytag: member="GlCanvas::setPen" ref="a7bd966336da4b1137561e64542701d21" args="(const QPen &amp;pen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setPen </td>
          <td>(</td>
          <td class="paramtype">const QPen &amp;&#160;</td>
          <td class="paramname"><em>pen</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This function sets the QPen to use to draw different primitves.</p>
<p>Following drawing command will use the color, width and more properties of provided QPen to draw. </p>

</div>
</div>
<a class="anchor" id="a6c643daf33a7f5eb6089325c1be76120"></a><!-- doxytag: member="GlCanvas::setPerspectiveView" ref="a6c643daf33a7f5eb6089325c1be76120" args="(PerspectiveType type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::setPerspectiveView </td>
          <td>(</td>
          <td class="paramtype">PerspectiveType&#160;</td>
          <td class="paramname"><em>type</em></td><td>)</td>
          <td><code> [slot]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Change the view perspective to one of the predefined type.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>new view to use </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0a1ed87fd1fb141d2ed3bd2e17159bf2"></a><!-- doxytag: member="GlCanvas::worldToScreen" ref="a0a1ed87fd1fb141d2ed3bd2e17159bf2" args="(double wx, double wy, double wz, double *x, double *y, double *z) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::worldToScreen </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>wx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>wy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>wz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double *&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in world coordinate system to screen coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<a class="anchor" id="a34841194936da54e2fa0d0b3acdfe09f"></a><!-- doxytag: member="GlCanvas::worldToScreen" ref="a34841194936da54e2fa0d0b3acdfe09f" args="(const Point3 &amp;, Point3 &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GlCanvas::worldToScreen </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>world</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Point3 &amp;&#160;</td>
          <td class="paramname"><em>winCoords</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in worls coordinate system to screen coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<a class="anchor" id="ac4b0cd5f34a437d5a07164aaf36976fa"></a><!-- doxytag: member="GlCanvas::worldToScreen" ref="ac4b0cd5f34a437d5a07164aaf36976fa" args="(const Point3 &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Point3 GlCanvas::worldToScreen </td>
          <td>(</td>
          <td class="paramtype">const Point3 &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Map a point in worls coordinate system to screen coordinate system using current active camera settings for doing the mapping. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>qsculpt/include/<a class="el" href="_gl_view_8h_source.html">GlView.h</a></li>
<li>engine/src/Mesh.cpp</li>
<li>qsculpt/src/GlView.cpp</li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Thu May 31 2012 16:19:52 for QSculpt by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
